package com.xbongbong.paas.service;

import com.xbongbong.paas.pojo.ScreenListPojo;
import com.xbongbong.paas.pojo.dto.RelationClueScreenListDTO;
import com.xbongbong.paas.pojo.dto.Screen4DistributorDTO;
import com.xbongbong.paas.pojo.dto.ScreenAddDTO;
import com.xbongbong.paas.pojo.dto.ScreenListDTO;
import com.xbongbong.paas.pojo.vo.ScreenAddVO;
import com.xbongbong.paas.pojo.vo.ScreenListVO;
import com.xbongbong.paas.toolbox.exception.XbbException;

/**
 * @author: wufeng
 * @date: 2018/9/11 10:21
 * @desrcption: 和redis交互
 */
public interface ScreenService {
    /**
     * 设置常用筛选项
     * @param screenAddDTO
     * @return
     * @throws XbbException
     */
    ScreenAddVO add(ScreenAddDTO screenAddDTO) throws XbbException;

    /**
     * 获取常用筛选项列表
     * @param screenListDTO
     * @return
     * @throws XbbException
     */
    ScreenListVO list(ScreenListDTO  screenListDTO) throws XbbException;

    /**
     * 获取经销商图表中心筛选项
     * @param screen4DistributorDTO
     * @return
     * @throws XbbException
     */
    ScreenListVO forDistributor(Screen4DistributorDTO screen4DistributorDTO) throws XbbException;

    /**
     * 市场活动详情页，关联"销售线索tab",获取筛选项列表
     * @param screenListDTO
     * @return
     * @throws XbbException
     */
    ScreenListVO relationClueScreenList(RelationClueScreenListDTO screenListDTO) throws XbbException;

    /**
     * 设置数据回收站常用筛选项
     * @param screenAddDTO
     * @return
     * @throws XbbException
     */
    ScreenAddVO delScreenAdd(ScreenAddDTO screenAddDTO) throws XbbException;
    /**
     * 获取数据回收站常用筛选项列表
     * @param screenListDTO
     * @return
     * @throws XbbException
     */
    ScreenListVO delScreenList(ScreenListDTO screenListDTO) throws XbbException;
    /**
     * 设置选择产品常用筛选项
     * @param screenAddDTO
     * @return
     * @throws XbbException
     */
    ScreenAddVO selectScreenAdd(ScreenAddDTO screenAddDTO) throws XbbException;
    /**
     * 设置待入库选择采购合同常用筛选项
     * @param screenAddDTO
     * @return
     * @throws XbbException
     */
    ScreenAddVO screenSelectPurchaseAdd(ScreenAddDTO screenAddDTO) throws XbbException;
    /**
     * 获取选择产品常用筛选项列表
     * @param screenListDTO
     * @return
     * @throws XbbException
     */
    ScreenListVO selectScreenList(ScreenListDTO screenListDTO) throws XbbException;
    /**
     * 获取待入库选择采购合同常用筛选项列表
     * @param screenListDTO
     * @return
     * @throws XbbException
     */
    ScreenListVO screenSelectPurchaseList(ScreenListDTO screenListDTO) throws XbbException;

    /**
     * 客户对账单常用筛选项列表
     * @param screenListPojo
     * @return com.xbongbong.paas.pojo.vo.ScreenListVO
     * @throws XbbException
     * @author zcp
     * @since v1.0
     * @version v1.0
     */
    ScreenListVO screenCustomerStatementList(ScreenListPojo screenListPojo) throws XbbException;

    ScreenAddVO screenSelectContractAdd(ScreenAddDTO screenAddDTO) throws XbbException;

    ScreenListVO screenSelectContractList(ScreenListDTO screenListDTO) throws XbbException;
}
